1 /* 2 3 Boost Software License - Version 1.0 - August 17th, 2003 4 5 Permission is hereby granted, free of charge, to any person or organization 6 obtaining a copy of the software and accompanying documentation covered by 7 this license (the "Software") to use, reproduce, display, distribute, 8 execute, and transmit the Software, and to prepare derivative works of the 9 Software, and to permit third-parties to whom the Software is furnished to 10 do so, all subject to the following: 11 12 The copyright notices in the Software and this entire statement, including 13 the above license grant, this restriction and the following disclaimer, 14 must be included in all copies of the Software, in whole or in part, and 15 all derivative works of the Software, unless such copies or derivative 16 works are solely in the form of machine-executable object code generated by 17 a source language processor. 18 19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 21 FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 22 SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 23 FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 24 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 25 DEALINGS IN THE SOFTWARE. 26 27 */ 28 29 module derelict.glib.gtree; 30 31 import derelict.glib.gtypes; 32 import derelict.glib.glibconfig; 33 import derelict.glib.gnode; 34 35 extern (C): 36 37 alias _GTree GTree; 38 alias int function (void*, void*, void*) GTraverseFunc; 39 40 struct _GTree; 41 42 version(Derelict_Link_Static) 43 { 44 extern( C ) nothrow 45 { 46 GTree* g_tree_new(GCompareFunc key_compare_func); 47 GTree* g_tree_new_with_data(GCompareDataFunc key_compare_func, gpointer key_compare_data); 48 GTree* g_tree_new_full(GCompareDataFunc key_compare_func, gpointer key_compare_data, GDestroyNotify key_destroy_func, GDestroyNotify value_destroy_func); 49 GTree* g_tree_ref(GTree* tree); 50 void g_tree_unref(GTree* tree); 51 void g_tree_destroy(GTree* tree); 52 void g_tree_insert(GTree* tree, gpointer key, gpointer value); 53 void g_tree_replace(GTree* tree, gpointer key, gpointer value); 54 gboolean g_tree_remove(GTree* tree, gconstpointer key); 55 gboolean g_tree_steal(GTree* tree, gconstpointer key); 56 gpointer g_tree_lookup(GTree* tree, gconstpointer key); 57 gboolean g_tree_lookup_extended(GTree* tree, gconstpointer lookup_key, gpointer* orig_key, gpointer* value); 58 void g_tree_foreach(GTree* tree, GTraverseFunc func, gpointer user_data); 59 void g_tree_traverse(GTree* tree, GTraverseFunc traverse_func, GTraverseType traverse_type, gpointer user_data); 60 gpointer g_tree_search(GTree* tree, GCompareFunc search_func, gconstpointer user_data); 61 gint g_tree_height(GTree* tree); 62 gint g_tree_nnodes(GTree* tree); 63 } 64 } 65 else 66 { 67 extern( C ) nothrow 68 { 69 alias da_g_tree_new = GTree* function(GCompareFunc key_compare_func); 70 alias da_g_tree_new_with_data = GTree* function(GCompareDataFunc key_compare_func, gpointer key_compare_data); 71 alias da_g_tree_new_full = GTree* function(GCompareDataFunc key_compare_func, gpointer key_compare_data, GDestroyNotify key_destroy_func, GDestroyNotify value_destroy_func); 72 alias da_g_tree_ref = GTree* function(GTree* tree); 73 alias da_g_tree_unref = void function(GTree* tree); 74 alias da_g_tree_destroy = void function(GTree* tree); 75 alias da_g_tree_insert = void function(GTree* tree, gpointer key, gpointer value); 76 alias da_g_tree_replace = void function(GTree* tree, gpointer key, gpointer value); 77 alias da_g_tree_remove = gboolean function(GTree* tree, gconstpointer key); 78 alias da_g_tree_steal = gboolean function(GTree* tree, gconstpointer key); 79 alias da_g_tree_lookup = gpointer function(GTree* tree, gconstpointer key); 80 alias da_g_tree_lookup_extended = gboolean function(GTree* tree, gconstpointer lookup_key, gpointer* orig_key, gpointer* value); 81 alias da_g_tree_foreach = void function(GTree* tree, GTraverseFunc func, gpointer user_data); 82 alias da_g_tree_traverse = void function(GTree* tree, GTraverseFunc traverse_func, GTraverseType traverse_type, gpointer user_data); 83 alias da_g_tree_search = gpointer function(GTree* tree, GCompareFunc search_func, gconstpointer user_data); 84 alias da_g_tree_height = gint function(GTree* tree); 85 alias da_g_tree_nnodes = gint function(GTree* tree); 86 } 87 88 __gshared 89 { 90 da_g_tree_new g_tree_new; 91 da_g_tree_new_with_data g_tree_new_with_data; 92 da_g_tree_new_full g_tree_new_full; 93 da_g_tree_ref g_tree_ref; 94 da_g_tree_unref g_tree_unref; 95 da_g_tree_destroy g_tree_destroy; 96 da_g_tree_insert g_tree_insert; 97 da_g_tree_replace g_tree_replace; 98 da_g_tree_remove g_tree_remove; 99 da_g_tree_steal g_tree_steal; 100 da_g_tree_lookup g_tree_lookup; 101 da_g_tree_lookup_extended g_tree_lookup_extended; 102 da_g_tree_foreach g_tree_foreach; 103 da_g_tree_traverse g_tree_traverse; 104 da_g_tree_search g_tree_search; 105 da_g_tree_height g_tree_height; 106 da_g_tree_nnodes g_tree_nnodes; 107 } 108 }